import 'package:enjoy_life/pages/house/components/house_item.dart';
import 'package:enjoy_life/utils/EventsBus.dart';
import 'package:enjoy_life/utils/NetworkService.dart';
import 'package:enjoy_life/utils/Toast.dart';
import 'package:flutter/material.dart';

class HouseList extends StatefulWidget {
  const HouseList({super.key});

  @override
  State<HouseList> createState() => _HouseListState();
}

class _HouseListState extends State<HouseList> {
  // 房源列表
  List houseList = [];
  // 是否加载中
  bool isLoading = false;

  @override
  void initState() {
    super.initState();
    getHouseList();
    eventBus.on<RefreshEvent>().listen((event) {
      getHouseList();
    });
  }

  Future<void> getHouseList() async {
    try {
      setState(() {
        isLoading = true;
      });
      final res = await http.get('/room');
      if (res['code'] != 10000) return CustomToast.error('获取房屋列表失败');
      setState(() {
        houseList = res['data'];
        // 关闭加载
        isLoading = false;
      });
    } catch (e) {
      CustomToast.error('网络错误');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: const Color.fromARGB(255, 241, 238, 238),
        appBar: AppBar(
          title: const Text('我的房屋'),
          backgroundColor: Colors.transparent,
          centerTitle: true,
        ),
        body: Stack(children: [
          Padding(
              padding: const EdgeInsets.only(bottom: 80, left: 10, right: 10),
              child: Center(
                child: isLoading
                    ? CircularProgressIndicator()
                    : ListView.separated(
                        itemBuilder: (BuildContext context, int index) {
                          return HouseItem(
                            houseInfo: houseList[index],
                          );
                        },
                        separatorBuilder: (BuildContext context, int index) {
                          return Container(
                            height: 10,
                            color: const Color.fromARGB(255, 241, 238, 238),
                          );
                        },
                        itemCount: houseList.length),
              )),
          Positioned(
              bottom: 0,
              left: 0,
              right: 0,
              child: Container(
                  padding: const EdgeInsets.all(10),
                  color: Colors.transparent,
                  child: Row(children: [
                    Expanded(
                        child: ElevatedButton(
                            onPressed: () {
                              Navigator.pushNamed(context, '/locationList');
                            },
                            child: const Column(children: [
                              SizedBox(height: 5),
                              Icon(Icons.add),
                              Text('添加房屋'),
                              SizedBox(height: 5),
                            ])))
                  ])))
        ]));
  }
}
